package com.bkgy.controller.tpdol3data.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.bkgy.commom.model.Temp;
import com.bkgy.controller.tpdol3data.entity.TPdoDataL3Tcm2280;
import com.bkgy.controller.tpdol3data.entity.dto.*;
import com.bkgy.sys.common.entity.ResultData;

import java.util.Date;
import java.util.List;

public interface ITPdoL3Tcm2280Service extends IService<TPdoDataL3Tcm2280> {
    /**
     * 分页查询
     */
    List<Temp> selectPage(int rowNum);

    /**
     * 作业区总览》月产量图
     */
    ResultData<TpdoL3Res> findL3Data();

    /**
     * 作业区总览》月质量图
     */
    ResultData<TpdoL3Res> findL3QuaData();

    /**
     * 作业区总览》三冷区域成才率图
     */
    ResultData<TpdoL3Res> findL3SucData();

    /**
     * 产量分析》酸轧机组产量
     */
    ResultData findData(String dateType);

    /**
     * 产量分析》酸轧机组各班组产量
     */
    ResultData findCrewData();

    /**
     * 产量分析》特殊规格钢生产情况
     */
    ResultData<TpdoL3Res> findL3Spedata();

    /**
     * 产量分析》利润
     */
    ResultData<TpdoL3ProfitRes> findL3ProfitData();

    /**
     * 产量分析》全流程成材率
     */
    ResultData<TpdoL3Res> findModulesData(TPdoL3TcmRequest l3);

    /**
     * 产量分析》非计划停机
     */
    ResultData<TcmNoPlanStopRes> findNonHaltData(TPdoL3TcmBaseRequest request);

    /**
     * 产品分析可视化》班组产能达成情况
     */
    ResultData<TpdoL3Res> findCrewAchiData(TPdoL3CrewARequest l3);

    /**
     * 产品分析可视化》重点品种生产情况
     */
    ResultData<TpdoL3ImpRes> findL3ImpData();

    /**
     * 产品分析可视化》酸轧机组月产能利用率
     */
    ResultData<TpdoL3Res> findL3LiyongData();

    /**
     * 构建特种钢生产情况数据
     *
     * @param date
     */
    public boolean buildSpecialSteel(Date date);

    /**
     * 作业区总览》作业率
     */
    ResultData<WorkRate> workRate();

    /**
     * 酸轧班组报表概览》产量分班组情况
     */
    ResultData tcmOutputCrew(OutputReq tc);

    /**
     * 酸轧班组报表概览》产量情况
     */
    ResultData tcmOutput(OutputReq tc);
}
